package model;

import config.ConfigParameter;
import lombok.Data;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;


/**
 * @author： 杨浩然
 * @date： 2023-02-01 11:19
 */
@Data
public class DatabaseConnectParameter {
    String url;//地址
    Set<String> fromname;//表名 可多表
    //实际连接参数
    String driver;//引擎
    String Connecturl;//实际连接地址
    String schemaPattern;//模式名，可以是%代表所有
    String username;//账户
    String password;//密码

    public static DatabaseConnectParameter Create(String databaseType, Set<String> fromname,String url, String schemaPattern, String username, String password) {
        DatabaseConnectParameter model = new DatabaseConnectParameter();
        model.setUrl(url);
        model.setUsername(username);
        model.setSchemaPattern(schemaPattern);
        model.setPassword(password);
        model.setFromname(fromname);

        if (ConfigParameter.DATEBASE_TYPE_DM.equals(databaseType)) {
            model.setConnecturl("jdbc:dm://" + url);
            model.setDriver("dm.jdbc.driver.DmDriver");
        } else if (ConfigParameter.DATEBASE_TYPE_K8S.equals(databaseType)) {
            model.setConnecturl("jdbc:kingbase8://" + url);
            model.setDriver("com.kingbase8.Driver");
        } else if (ConfigParameter.DATEBASE_TYPE_ORACLE.equals(databaseType)) {
            model.setConnecturl("jdbc:oracle:thin:@" + url);
            model.setDriver("oracle.jdbc.OracleDriver");
        }
        return model;
    }


    public static DatabaseConnectParameter Create(String databaseType, String fromname,String url, String schemaPattern, String username, String password) {
        Set<String> strings = new HashSet<String>();
        strings.add(fromname);
        return DatabaseConnectParameter.Create(databaseType, strings, url,schemaPattern, username, password);

    }

}
